<?php
/**
 * Permite crear nuevos roles de usuario
 * @package simertweb 
 * @subpackage controllers  
 * @category Administración
 * @author Grecia Espinoza <mrcl2587@gmail.com>
 * @author Juan Maldonado  <jgmaldonadoj@gmail.com> 
 * @version 1.0 
 */
class Rol extends CI_Controller {

    function __construct() {
        parent::__construct();
        $this->load->helper('form');
        $this->load->library('form_validation');
        $this->load->model('mrol');
        $this->load->model('mpersona');
        $this->load->model('mempleado');
        $this->load->library('ftp');
        $this->load->model('acceso');
        $this->load->model('reportes');
    }

    //carga las vistas por defecto y si no ha iniciado sesión, carga la vista de login.
    function index() {
        if ($this->acceso->sesion() == 1) {
            $this->load->view('includes/menu_izquierdo');
            $this->load->view('includes/cabecera');
            $this->load->view('rol');
            $this->load->view('includes/footer');
        } else {
            $this->load->view('autenticacion');
        }
    }

    //metodo para validar que se acepte solo caracteres alfabeticos, tíldes y espacios
    function alpha_space($str_in = '') {
        if (!preg_match("/^([-a-záéíóúÁÉÍÓÚñÑ ])+$/i", $str_in)) {
            $this->form_validation->set_message('alpha_space', '<p style="color: red">El campo %s acepta solo carateres alfabéticos.</p>');
            return FALSE;
        } else {
            return TRUE;
        }
    }

    //llama al metodo validar rol y devuelve true si este se cumple caso contrario devuelve un mensaje
    function rol_check() {
        if ($this->mrol->validar_rol($_POST["ti"]) == TRUE) {
            return TRUE;
        } else {
            $this->form_validation->set_message('rol_check', "El rol " . $_POST["ti"] . " ya existe");
            return FALSE;
        }
    }

    //valida los campos del formulario y guarda un rol
    function guardar() {
        $this->form_validation->set_rules('privi', 'Privilegios', 'required|callback_alpha_space|trim');
        $this->form_validation->set_rules('ti', 'Tipo', 'required|callback_alpha_space|callback_rol_check|trim');

        if ($this->form_validation->run() === TRUE) {
            $data['message'] = '/simertweb/rol';
            $this->mrol->guardarRoles();
            $this->load->view('includes/menu_izquierdo');
            $this->load->view('includes/cabecera');
            $this->load->view('includes/mensaje_exito', $data);
            $this->load->view('includes/footer');
        } else {
            $this->index();
        }
    }

}

?>
